#!/bin/bash
# 获取当前目录下所有的目录和文件，并通过ls -lt排序

## 部署目录
deploy_dir=$2
application_name=$1
substring="launch-$application_name"
max=-0
min=100000000
## 1. 取部署目录里需要回滚版本
cd "$deploy_dir"
list=$(ls -lt)
file_names=($(echo "$list" | awk '{if(NF>1) print $NF}'))

for file_name in "${file_names[@]}"; do
  if [[ $file_name == *$substring* ]]; then
    # 获取部署jar 最后的数字
    numbers=$(echo $file_name  | sed 's/.*-\([0-9]*\)\.jar/\1/')
    if [ "$numbers" -gt "$max" ]; then
    max="$numbers"
    fi
    if [ "$numbers" -lt "$min" ]; then
    min="$numbers"
    fi
 fi
done
sequence=$((max-1))

echo  "回滚到的jar版本 $sequence"
new_jar_name="launch-$application_name-$sequence.jar"


# 3. 开始启动服务
start_proc_pid=$(ps aux | grep $application_name | awk '$12 ~ /.*jar.*/ {print $2}')

if [ -z $start_proc_pid ]; then ##  字符isEmpty()
  printf '进程不存在'
 else
  echo '获取进程pid:'$start_proc_pid
  printf '开始杀进程....\n'
  kill -9 $start_proc_pid
  printf '已杀死进程'$start_proc_pid
  printf '\n'
fi


## & 关闭session 就关关闭程序
## nohup 关闭session 不会关闭程序，但是ctrl+c 会关闭程序
printf '启动进程中...\n'
nohup java -jar -Xms2048m -Xmx4096m  "$deploy_dir$new_jar_name"  &
start_proc_pid=$(ps aux | grep ''$application_name'' | awk '$12 ~ /.*jar.*/ {print $2}')
